home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / javax / management / MBeanOperationInfo.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  4.1 KB  |  132 lines

  1. package javax.management;
  2.  
  3. import [Ljavax.management.MBeanParameterInfo;;
  4. import com.sun.jmx.mbeanserver.Introspector;
  5. import java.lang.annotation.Annotation;
  6. import java.lang.reflect.Method;
  7. import java.util.Arrays;
  8.  
  9. public class MBeanOperationInfo extends MBeanFeatureInfo implements Cloneable {
  10.    static final long serialVersionUID = -6178860474881375330L;
  11.    static final MBeanOperationInfo[] NO_OPERATIONS = new MBeanOperationInfo[0];
  12.    public static final int INFO = 0;
  13.    public static final int ACTION = 1;
  14.    public static final int ACTION_INFO = 2;
  15.    public static final int UNKNOWN = 3;
  16.    private final String type;
  17.    private final MBeanParameterInfo[] signature;
  18.    private final int impact;
  19.    private final transient boolean arrayGettersSafe;
  20.  
  21.    public MBeanOperationInfo(String var1, Method var2) {
  22.       this(var2.getName(), var1, methodSignature(var2), var2.getReturnType().getName(), 3, Introspector.descriptorForElement(var2));
  23.    }
  24.  
  25.    public MBeanOperationInfo(String var1, String var2, MBeanParameterInfo[] var3, String var4, int var5) {
  26.       this(var1, var2, var3, var4, var5, (Descriptor)null);
  27.    }
  28.  
  29.    public MBeanOperationInfo(String var1, String var2, MBeanParameterInfo[] var3, String var4, int var5, Descriptor var6) {
  30.       super(var1, var2, var6);
  31.       if (var3 != null && var3.length != 0) {
  32.          var3 = (MBeanParameterInfo[])((MBeanParameterInfo;)var3).clone();
  33.       } else {
  34.          var3 = MBeanParameterInfo.NO_PARAMS;
  35.       }
  36.  
  37.       this.signature = var3;
  38.       this.type = var4;
  39.       this.impact = var5;
  40.       this.arrayGettersSafe = MBeanInfo.arrayGettersSafe(this.getClass(), MBeanOperationInfo.class);
  41.    }
  42.  
  43.    public Object clone() {
  44.       try {
  45.          return super.clone();
  46.       } catch (CloneNotSupportedException var2) {
  47.          return null;
  48.       }
  49.    }
  50.  
  51.    public String getReturnType() {
  52.       return this.type;
  53.    }
  54.  
  55.    public MBeanParameterInfo[] getSignature() {
  56.       if (this.signature == null) {
  57.          return MBeanParameterInfo.NO_PARAMS;
  58.       } else {
  59.          return this.signature.length == 0 ? this.signature : (MBeanParameterInfo[])((MBeanParameterInfo[])this.signature.clone());
  60.       }
  61.    }
  62.  
  63.    private MBeanParameterInfo[] fastGetSignature() {
  64.       if (this.arrayGettersSafe) {
  65.          return this.signature == null ? MBeanParameterInfo.NO_PARAMS : this.signature;
  66.       } else {
  67.          return this.getSignature();
  68.       }
  69.    }
  70.  
  71.    public int getImpact() {
  72.       return this.impact;
  73.    }
  74.  
  75.    public String toString() {
  76.       String var1;
  77.       switch (this.getImpact()) {
  78.          case 0:
  79.             var1 = "info";
  80.             break;
  81.          case 1:
  82.             var1 = "action";
  83.             break;
  84.          case 2:
  85.             var1 = "action/info";
  86.             break;
  87.          case 3:
  88.             var1 = "unknown";
  89.             break;
  90.          default:
  91.             var1 = "(" + this.getImpact() + ")";
  92.       }
  93.  
  94.       return this.getClass().getName() + "[" + "description=" + this.getDescription() + ", " + "name=" + this.getName() + ", " + "returnType=" + this.getReturnType() + ", " + "signature=" + Arrays.asList(this.fastGetSignature()) + ", " + "impact=" + var1 + ", " + "descriptor=" + this.getDescriptor() + "]";
  95.    }
  96.  
  97.    public boolean equals(Object var1) {
  98.       if (var1 == this) {
  99.          return true;
  100.       } else if (!(var1 instanceof MBeanOperationInfo)) {
  101.          return false;
  102.       } else {
  103.          MBeanOperationInfo var2 = (MBeanOperationInfo)var1;
  104.          return var2.getName().equals(this.getName()) && var2.getReturnType().equals(this.getReturnType()) && var2.getDescription().equals(this.getDescription()) && var2.getImpact() == this.getImpact() && Arrays.equals(var2.fastGetSignature(), this.fastGetSignature()) && var2.getDescriptor().equals(this.getDescriptor());
  105.       }
  106.    }
  107.  
  108.    public int hashCode() {
  109.       return this.getName().hashCode() ^ this.getReturnType().hashCode();
  110.    }
  111.  
  112.    private static MBeanParameterInfo[] methodSignature(Method var0) {
  113.       Class[] var1 = var0.getParameterTypes();
  114.       Annotation[][] var2 = var0.getParameterAnnotations();
  115.       return parameters(var1, var2);
  116.    }
  117.  
  118.    static MBeanParameterInfo[] parameters(Class[] var0, Annotation[][] var1) {
  119.       MBeanParameterInfo[] var2 = new MBeanParameterInfo[var0.length];
  120.  
  121.       assert var0.length == var1.length;
  122.  
  123.       for(int var3 = 0; var3 < var0.length; ++var3) {
  124.          Descriptor var4 = Introspector.descriptorForAnnotations(var1[var3]);
  125.          String var5 = "p" + (var3 + 1);
  126.          var2[var3] = new MBeanParameterInfo(var5, var0[var3].getName(), "", var4);
  127.       }
  128.  
  129.       return var2;
  130.    }
  131. }
  132.